Skip to main content

Contributors: Jellejurre, JustSleightly

Animator States

Animator States are individual states in the Animator Controller Layer State Machine. Each Animator Controller Layer is either playing a single state or transitioning between two states.

When in a state, it plays the corresponding Animation Clip or Blend Tree. During transitions, it blends the Animation Clips/Blend Trees of both states together.

Details on Entry/Exit/Any States and blending can be explored further on the Animator Transitions page.

A default Animator State’s Inspector

A default Animator State’s Inspector


Motion

The Motion field holds the Animation Clip or Blend Tree for a state. You can select an Animation Clip from the project folder or drag and drop it into the Motion field. To create an Animator State with a Blend Tree, Right-Click → Create State → From New Blend Tree.


Speed

The Speed field sets speed of the Animation Clip or Blend Tree. This can be changed to a positive or negative value, allowing for animations to play in reverse. Any float can be entered here, including 0, 1.5, -7.2 and Infinity.

Checking the Parameter checkbox next to the Multiplier field allows you to enter a Float parameter from the current Animator Controller, allowing you to multiply the Speed value by the value of that parameter.


Motion Time

The Motion Time field allows a parameter to be used to scroll through the time of the Animation Clip/Blend Tree. To activate it, check the Parameter checkbox next to the Motion Time field and enter a Float parameter from your Animator Controller. The scrolling is done based on the normalized time of the animation.

Example: For a 5 second long Animation Clip, and a Motion Time parameter set to 0.6, it will play the frame at 3 seconds into the Animation Clip and stay there until you change the Motion Time parameter.

Note that this does respect the Loop Time toggle on Animation Clips. So if you do this on an Animation Clip with Loop Time on, a parameter of 1 will play the frame at 0% into of the animation clip (the very start), and a parameter of 1.5 will play the frame at 50% into the animation clip (the middle).


Write Defaults

The Write Defaults field determines the persistence of changes made during an animation. When enabled, animated fields return to their default state upon leaving the Animator State. When disabled, the changes persist.

caution

This feature has a lot of unexpected behaviour attached to it, especially with the setting disabled. More information on the kinds of glitchy behaviour you can expect and how to protect against it can be found at Write Defaults.


Transitions

Animator State Transitions determine whether the current Animator State persists or transitions to another state.

It first checks Any State Transitions, then evaluates outgoing Transitions from the current state. If a matching transition is found, it plays that transition and moves to the target state. More details on Animator State Transitions are available at the Animator Transitions page.

The Mute field disables a specific transition, while the Solo field disables all other transitions. However, these features are not commonly used.

A list of two transitions, one to New State, and one to Other New State. The transition to New State would take priority here.

A list of two transitions, one to New State, and one to Other New State. The transition to New State would take priority here.


Advanced Details

Mirror

The Mirror field allows you to Mirror the humanoid parts of the State’s Animation Clip/Blend Tree. It applies properties from left Humanoid Muscles to the right ones, and vice versa. This does the same as the Mirror field in the Animation Clip’s Inspector.

Check the Parameter checkbox next to the Mirror field to use a Bool parameter from the Animator Controller. This enables changing the Mirror value by adjusting the parameter's value.


Cycle Offset

The Cycle Offset field sets the starting point of the animation loop. Having a Cycle Offset of 0.2 means the animation is always 0.2 times the animation length ahead of the usual time.

To dynamically control it, check the Parameter checkbox next to the Cycle Offset field. This allows entering a Float parameter from the Animator Controller, enabling adjustment of the Cycle Offset by changing the parameter’s value.

Example: If you have a Motion Time parameter set to 0.5 and Cycle Offset set to 0.2, the frame played would be at 70% into the animation.

It respects the Animation Clip’s Loop Time property, so a Motion Time parameter set to 0.9 and Cycle Offset set to 0.4 would play the frame at 30% into the animation.


Foot IK

If both the Foot IK toggle and the Layer’s IK Pass setting is enabled, the IK solver does extra work to make sure the feet IK is as close as possible to the IK targets. Since VRChat does not use the Animator Component’s controllers for its IK, this is useless for VRChat Animators.


Last Updated: 31 March 2024 08:54:00